package com.thealgorithms.strings.zigZagPattern;
class zigZagPattern {

    public static String encode(String s, int numRows) {
        if ( numRows < 2 || s.length() < numRows ) return s ;
        int start = 0 , index = 0 , height = 1 , depth = numRows ;
        char[] zigZagedArray = new char[ s.length() ] ;
        while ( depth != 0 ) {
            int pointer = start , height_space = 2 + ( ( height - 2 ) * 2 ) , depth_space = 2 + ( ( depth - 2 ) * 2 ) ;
            boolean bool = true ;
            while ( pointer < s.length() ) {
                zigZagedArray[index++] = s.charAt( pointer ) ;
                if ( height_space == 0 ) pointer += depth_space ;
                else if ( depth_space == 0 ) pointer += height_space ;
                else if ( bool ) {
                    pointer += depth_space ;
                    bool = false ;
                } else {
                    pointer += height_space ;
                    bool = true ;
                }
            }
            height++ ;
            depth-- ;
            start++ ;
        }
        return new String( zigZagedArray ) ;
    }

}